/**
 * 根据GPS两点经纬度信息计算距离
 * @param  {Number} lat1 点1 GPS 经度
 * @param  {Number} lng1 点1 GPS 纬度
 * @param  {Number} lat2 点2 GPS 经度
 * @param  {Number} lng2 点2 GPS 纬度
 * @return {Number}           两点距离
 */
function getDistance(lat1, lng1, lat2, lng2) {
    var radLat1 = lat1 * Math.PI / 180.0;
    var radLat2 = lat2 * Math.PI / 180.0;
    var a = radLat1 - radLat2;
    var b = lng1 * Math.PI / 180.0 - lng2 * Math.PI / 180.0;
    var s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) +
        Math.cos(radLat1) * Math.cos(radLat2) * Math.pow(Math.sin(b / 2), 2)));
    s = s * 6378137;// EARTH_RADIUS;
    //s = Math.round(s * 10000) / 10000;
    return s;
}

function formatDistance(distance) {
    if (isNaN(distance)) {
        return '0m';
    }

    if (distance < 1000) {
        return Math.round(distance) + 'm';
    }

    return (distance / 1000).toFixed(1) + 'km';
}


export {
    getDistance,
    formatDistance
};
